package com.vcc.core.derive.admin;

import cn.dev33.satoken.error.SaErrorCode;
import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.converters.longconverter.LongStringConverter;
import com.vcc.core.derive.converter.DateConverter;
import com.vcc.core.derive.converter.transaction.StatusConverter;
import com.vcc.core.derive.converter.transaction.TypeConverter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DeriveTransaction implements Serializable {
    @ExcelProperty(value = "id",converter = LongStringConverter.class)
    private Long id;

    @ExcelProperty(value = "交易ID")
    private String tranId;

    @ExcelProperty(value = "原交易ID")
    private String originalTranId;

    @ExcelProperty(value = "渠道交易ID")
    private String channelTranId;

    @ExcelProperty(value = "渠道原交易ID")
    private String channelOriginalTranId;

    @ExcelProperty(value = "账号")
    private String account;

    @ExcelProperty(value = "卡号")
    private String cardNumber;

    @ExcelProperty(value = "用户卡ID")
    private Long userCardId;

    @ExcelProperty(value = "商户名称")
    private String merchantName;

    @ExcelProperty(value = "交易时间", converter = DateConverter.class)
    private Date tranDate;

    @ExcelProperty(value = "结算时间", converter = DateConverter.class)
    private Date settleDate;

    @ExcelProperty(value = "账单金额")
    private BigDecimal billingAmount;

    @ExcelProperty(value = "账单币种")
    private String billingCurrency;

    @ExcelProperty(value = "商户金额")
    private BigDecimal merchantAmount;

    @ExcelProperty(value = "商户币种")
    private String merchantCurrency;

    @ExcelProperty(value = "结算金额")
    private BigDecimal settleAmount;

    @ExcelProperty(value = "结算币种")
    private String settleCurrency;

    @ExcelProperty(value = "交易类型", converter = TypeConverter.class)
    private String authType;

    @ExcelProperty(value = "备注")
    private String remark;

    @ExcelProperty(value = "状态", converter = StatusConverter.class)
    private String status;

    @ExcelProperty(value = "MCC")
    private String mcc;

    @ExcelProperty(value = "代理账号")
    private String dealerAccount;
}
